var rowIndex = "%^%%%%";//发料表的下标（用于改变选中行样式）
var page;//发料表的页码
var _index = -1;//发料表的下标（用于表勾选）
var _fCode;//派工单号
var datas = [];

var _fparentid = "-1";
/*
 * @Description: 预加载
 * @param : 
 */
$(function() {
	fnResize();
	warehouse();
	
	$.fn.zTree.init($("#bomTree"), setting);
	initStockInfoTable();
	initPickingTable();

	
	//点击Tab刷新表格
	/*$(".OPICK",parent.document).click(function(){
		$('#stockInfoTable').bootstrapTable('refresh');
		$('#pickingTable').bootstrapTable('refresh');
//		setTimeout(function(){
//			if(_index != -1){
//				$('#pickTable').bootstrapTable('check',_index);
//			}
//		},500);
	});*/
});


/*
* @Description: 树操作
* @param :
*/
var setting = {
	async : {
		enable : true,
		url : pathUrl("Bom/getAllBom.action"),
		type : "POST",
		dataFilter : filter
	},
	view : {
		dblClickExpand : false,
		selectedMulti : false,
		showIcon : false
	},
	edit : {
		enable : true,
		showRemoveBtn : false,
		showRenameBtn : false
	},
	data : {
		/*
		 * keep: { parent:true, leaf:true },
		 */
		simpleData : {
			enable : true,
		}
	},
	callback : {
		onClick : onClick,
		onAsyncSuccess : zTreeOnAsyncSuccess
	}
};

/*
* @Description: 对返回的json数据进行处理
* @param : treeId	对应zTree的treeId
* @param : parentNode	进行异步加载的父节点 JSON 数据对象
* @param : childNodes	异步加载获取到的数据
*/
function filter(treeId, parentNode, childNodes) {
	//	console.log(childNodes);
	if (!childNodes)
		return null;
	for ( var i = 0, l = childNodes.length; i < l; i++) {
		if (childNodes[i].pId == -1) {
			childNodes[i].open = "true";
		}
	}
	return childNodes;
}

/*
* @Description: 树异步加载正常结束的事件回调
* @param : event	js event对象
* @param : treeId	对应zTree的treeId
* @param : treeNode	被点击的节点JSON数据对象
* @param : msg	异步获取的节点数据字符串
*/
function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
//	swal.close();//关闭提示框
}

/*
* @Description: 点击节点事件
* @param : event	js event对象
* @param : treeId	对应zTree的treeId
* @param : treeNode	被点击的节点JSON数据对象
* @param : clickFlag	节点被单击后的选中类型
*/
function onClick(event, treeId, treeNode, clickFlag) {
//	console.log(treeNode);
	var _pId = treeNode.pId;
	var _name = treeNode.name;
	var children = treeNode.children;
	var zTree = $.fn.zTree.getZTreeObj("bomTree");
	
	if(children == undefined){
		_fparentid = treeNode.id;
//		$("#info").text(_name+"BOM信息");
	}else{
		_fparentid = "-1";
		zTree.expandNode(treeNode);
//		$("#info").text("BOM信息");
	}
	initStockInfoTable();
}
/*
* @Description: 初始化bom表 
* @param :
*/
function initStockInfoTable() {
	$("#stockInfoTable").bootstrapTable('destroy').bootstrapTable({
		url : pathUrl("Bom/getAllBomTree.action"),
		height: $(window).height() - 80,
		method : "POST",
		//striped : true,
//		toolbar : '#toolbar',
		cache : false,
//		pagination : true,
//		pageNumber : 1,
//		pageSize : 10,
		sidePagination : "client", // 分页方式：client客户端分页，server服务端分页（*）
//		pageList : [ 10, 25, 50, 100 ],
		queryParams : function(params) {
			var data = {},fnumber = $("#fnumber").val(), fname = $("#fname").val(),
			fmodel =  $("#fmodel").val();
			data.row = 10000000;
			data.fnumber = fnumber;
			data.fname = fname;
			data.fmodel = fmodel;
			data.noprice = 1;
			if(fnumber == "" && fname == "" && fmodel == ""){
				data.fparentid = _fparentid;
			}
//			console.log(data)
			return data;
		},
		dataType : 'JSON',
		uniqueId : "",
		columns : [ {
			field : 'fNumber',
			align : 'left',
			title : '代码',
			edit : false
		}, {
			field : 'fName',
			align : 'left',
			title : '名称',
			edit : false
		},/* {
			field : 'FFullName',
			align : 'center',
			title : '全名',
			edit : false
		},{
			field : 'FHelpCode',
			align : 'center',
			title : '助记码',
//			formatter : attribute,
			edit : false
		} */{
			field : 'fModel',
			align : 'left',
			title : '规格型号',
			edit : false
		},{
			field : 'fUnitName',
			align : 'left',
			title : '单位',
			edit : false
		}],
		onClickRow : function(row, $element) {
//			console.log(row)
		},
		onPageChange : function(number, size) {
		},
		onClickRow : function(row, $element) {//行单击
//			console.log(row)
			var pickingData = $('#pickingTable').bootstrapTable('getData');
			var length = pickingData.length;
			var flag = false;
			var fOccupyQty = row.fOccupyQty;
			row.fUnit = row.fUnitName;
			if(fOccupyQty == null){
				fOccupyQty = 0;
			}
			if((Math.round((parseFloat(row.fQty) - parseFloat(fOccupyQty)) * 100) / 100) == 0){
				swal_Tips("该物料可用数量为0，不能发料！");
				return false;
			}
			if(length > 0){
				$.each(pickingData,function(key,value){
					if(row.fNumber == value.fNumber){
						flag = true;
					}
				});
				if(flag){
					swal_Tips("该物料已存在！");
					return false;
				}else{
					pickingData[length] = row;
				}
			}else{
				pickingData[0] = row;
			}
			$('#pickingTable').bootstrapTable('load',pickingData);
		}
	});
}

/*
 * @Description: 初始化发料表 
 * @param :  
 */
function initPickingTable() {
	$('#pickingTable').bootstrapTable('destroy').bootstrapTable({
		height : $(window).height() - 80,//行高
		dataType : 'JSON',//数据类型
		uniqueId : "fInterID",//每一行的唯一标识，一般为主键列
		columns : [{
			field : 'fNumber',
			align : 'left',
			title : '物料代码',
			edit : false
		},{
			field : 'fName',
			align : 'left',
			title : '物料名称',
			edit : false
		},{
			field : "fModel",
			align : 'left',
			title : '规格型号',
			formatter : formatterStringLong,
			edit : false
		}/*,{
			field : 'fBatchNo',
			align : 'left',
			title : '批次',
			edit : false
		}*/,{
			field : 'fUnit',
			align : 'left',
			title : '单位',
			edit : false
		}/*,{
			field : 'sum',
			align : 'left',
			title : '可用数量',
			formatter : function(value,row,index){
				var fOccupyQty = row.fOccupyQty
				if(fOccupyQty == null){
					fOccupyQty = 0;
				}
				return Math.round((parseFloat(row.fQty) - parseFloat(fOccupyQty)) * 100) / 100;
			},
			edit : false
		}*/,{
			field : 'lQty',
			align : 'left',
			title : '入库数',
			formatter : function(value,row,index){
				if(value == null || value == undefined){
					row.lQty = '';
					return "";
				}else{
					return value;
				}
			}
		},{
			field : 'operate',
			align : 'left',
			title : '操作',
			formatter : function(value,row,index){
				return '<button type="button" class="btn btn-default delete" style="font-size:12px;">删除</button>';
			},
			events : operateEvents,
			edit : false
		}],
		onClickRow : function(row, $element) {//行单击
//			console.log(row)
		}
	});
}
/*
 * @Description: 表按钮操作事件
 * @param :
 */
window.operateEvents = {
	'click .delete' : function(e, value, row, index) {//删除按钮点击事件
		$("#pickingTable").bootstrapTable('removeRow',index);
	}
}
/*
 * @Description: 查询按钮单击事件
 * @param :
 */
$("#query").click(function() {
	initStockInfoTable();
});
/*
 * @Description: 重置按钮单击事件
 * @param :
 */
$("#resetting").click(function() {
	$('#fnumber,#fname,#fmodel').val("");
	initStockInfoTable();
});
/*
 * @Description: 查询按钮点击事件 
 * @param :
 */
$('#fnumber,#fname,#fmodel').keypress(function(event){
	if(event.keyCode == "13"){
		initStockInfoTable();
	}
});
/*
 * @Description: 发料按钮单击事件
 * @param :
 */
$("#giveOut").click(function() {
	var pickingData = $('#pickingTable').bootstrapTable('getData');
	var validate = true;
	$.each(pickingData,function(key,value){
		var lQty = parseFloat(value.lQty);
		// var fOccupyQty = value.fOccupyQty==null?0:value.fOccupyQty;
		var title = value.fNumber + value.fName + value.fModel;
		if(isNaN(lQty)){
			validate = false;
			swal_Tips("请输入" + title + "正确的入库数！");
			return false;
		}
		// if(lQty == 0){
		// 	validate = false;
		// 	swal_Tips(title + "入库数不能为0！");
		// 	return false;
		// }
		// if((Math.round((parseFloat(value.fQty) - parseFloat(fOccupyQty)) * 100) / 100) < lQty){
		// 	validate = false;
		// 	swal_Tips(title + "入库数不能大于可用数！");
		// 	return false;
		// }
		console.log(value)
		datas[key] = {
			'fItemID' : value.fItemId,
			'fModel' : value.fModel,
			'fNumber' : value.fNumber,
			'fStockID' : value.fStockID,
			'fSPID' : value.fStockPlaceID,
			'lQty' : value.lQty,
			'fUnitID' : value.fUnitId,
			'fBatchNo' : value.fBatchNo==undefined?"":value.fBatchNo
		}
	});
	if(!validate){
		datas = [];
		return false;
	}
	pullDownX();
	$("#requesterModal").modal('show');
});
/*
 * @Description: 重置
 * @param :
 */
function reseting(){
	initPickTable();
	$('.success').removeClass('success');
	rowIndex = "%^%%%%";
}
/*
 * @Description: 入库人模态框显示后，入库人卡号获得焦点
 * @param :
 */
$('#requesterModal').on('shown.bs.modal', function () {
	$("#fWorkerId").focus();
});
/*
 * @Description: 入库人模态框隐藏后，清空入库人卡号和入库人
 * @param :
 */
$('#requesterModal').on('hidden.bs.modal', function () {
	$(".resetting").val("");
});
/*
 * @Description: 员工ID输入框输入事件：输入员工ID后，自动带出员工姓名
 * @param : 
 */
validateID("#fWorkerId","#fWorker","save","入库人");

/*
 * @Description: 入库人卡号模态框确定按钮点击事件
 * @param :
 */
$("#save").click(function(){
	useMateriel();
});
/*
 * @Description: 领料提交方法
 * @param :
 */
function useMateriel(){
//	console.log($("#fWorker").val())
	var fWorker = $("#fWorkerId").val();
	var fWorkerName = $("#fWorker").val();
	// var workshop = $("#workshop").val();
	if(fWorker == ""){
		swal_Tips('请输入入库人卡号!');
		return false;
	}
	if(fWorkerName == ""){
		swal_Tips('请输入正确的入库人卡号!');
		return false;
	}
	// if(workshop == ""){
	// 	swal_Tips('请选择车间!');
	// 	return false;
	// }
//	console.log("datas:"+JSON.stringify(datas))
//	console.log("fDeptID:"+workshop)
//	console.log("fWorkerID:"+fWorker)
//	console.log("fWorker:"+fWorkerName)
//	console.log("fStockID:"+$("#fStockID").val())
	showLoading();//显示正在提交中
	$.ajax({
		url : pathUrl("otherStock/otherInStock.action"),
		type : "POST",
		dataType : "JSON",
		data : {
			'datas' : JSON.stringify(datas),
			// 'fDeptID' : workshop,
			'fWorkerID' : fWorker,
			'fWorker' : fWorkerName,
			'fStockID' : $("#fStockID").val(),
			'fNote' : $("#fNote").val()
		},
		success : function(data) {
			if (data.code == "0000") {
				// console.log(data);
				if(data.desc == 'dy'){
					getReport('wms',data.id,0);
				}
//				$("#pickingModal").modal('hide');
				$("#requesterModal").modal('hide');
				initStockInfoTable();
				initPickingTable();
				datas = [];
				swal_Tips_Short(data.message);
			} else if (data.code == "9999") {
				swal_Tips(data.message);
			}
		},
		error : function(request) {
			swal_Tips_Error();
		},
		complete : function () {
		}
	});
}
/*
 * @Description: 初始化仓库下拉框里的数据
 * @param : 
 */
function warehouse(){
	$.ajax({
		url : pathUrl("stock/getStockListEmp.action"),
		dataType : "JSON",
//		data : {'id' : $("#pickingID").val()},
		type : "POST",
		async : false,
		success : function(data) {
//			console.log(data)
			var option = "";
			$("#fStockID").empty();
//			option = '<option value="">' + "请选择" + '</option>';
			for (x in data) {
				option += '<option value="' + data[x].fStockID + '">' + data[x].fStockName + '</option>';
			}
			$("#fStockID").html(option);
			$('#fStockID').selectpicker('refresh');
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}

/*
 * @Description: 仓库下拉框改变事件
 * @param :
 */
// $("#fStockID").change(function(){
// 	initStockInfoTable();
// 	initPickingTable();
// })

/*
 * @Description: 初始化生产车间下拉框里的数据
 * @param : 
 */
function pullDownX(){
	$.ajax({//生产车间下拉
		url : pathUrl("department/getDepNameAndId.action"),
		dataType : "JSON",
		success : function(data) {
			var option = "";
			$("#workshop").empty();
			option = '<option value="">' + "请选择" + '</option>';
			for (x in data) {
				option += '<option value="' + data[x].value + '">' + data[x].text + '</option>';
			}
			$("#workshop").html(option);
			$('#workshop').selectpicker('refresh');
		},
		error : function(request) {
			swal_Tips_Error();
		}
	});
}
/*
 * @Description: 浏览器窗口大小改变后：
 * 				 class为ztree，divClassLeft，divClassRight的高度随之改变，
 * 				 divClassLeft的最大高度和最小高度随之改变
 * @param :
 */
function fnResize() {
	var height = $(window).height() - 15;//获取浏览器窗口大小
	document.getElementsByClassName("blank_bg")[0].style.height = height +"px";
	document.getElementsByClassName("blank_bg")[1].style.height = height +"px";
	document.getElementsByClassName("blank_bg")[2].style.height = height +"px";
	document.getElementById("bomTree").style.height = (height - 65) +"px";
}
/*
 * @Description: 浏览器窗口大小自适应
 * @param :
 */
$(window).resize(function() {
	window.setTimeout(function() {
		fnResize();
	}, 0);
});
/*
 * @Description: 查询条件按回车事件
 * @param :
 */
$("#fNumber,#fModel").keypress(function(event){
	if(event.keyCode == "13"){
		initStockInfoTable();
	}
});
/*
 * @Description: 获取
 * @param :
 */
function changeOption(){
	var index = $('#selectOption option:selected').val();//获取选择的index
	var s = $('#selectOption option:selected').text();
	switch(index){
	case "0":
		$("#fNote").val("");
		break;
	case "1":
		$("#fNote").val("在外协发料里找不到");
		break;
	case "2":		
		$("#fNote").val(s);
		break;
	default:
		$("#fNote").val(s);
	    break;
	}
}
